<!-- 
  map 
  场景：基于一个数组在个数不变的情况下 把数组中的每一项经过一定的映射(转换) 变成另外一个数组
  参数：函数 map((item,index)=>{ return xxx })  xxx是什么 新数组中的每一项就是什么
  返回值：新数组 arr.map().filter()
  实际需求：
  const list = [ {name,code}, {name,code} ,{name,code}]
  newList 
  list.map(item => item.name)
  list.map(item=> item.code + 1)
  list.map(item=>{
    if(item.code === 'x'){
      return xxx
    }else{
      return yyy
    }
  })

-->

<!-- 
  filter 
  场景：基于一个数组进行过滤筛选 把满足条件的项 组成一个新数组返回
  参数：回调函数 filter((item,index)=> 判断的条件)
  返回值：新数组
  例子
  [1,2,3] -> [1,3]
  filter(item => item/2 !== 0 )
  const list = [ {name,code}, {name,code} ,{name,code}]
  filter(item=> item.code > 2)
-->

<!-- 
  includes 
  判断方法： 返回值都是布尔值 作为判断条件存在 判断一个数组中是否包含传入的值
  arr.includes(value)
-->


<!-- 
  作业：
-->

<script>
  const list = [
    {
      name: '张三',
      age: 18,
      height: 180
    },
    {
      name: '李四',
      age: 20,
      height: 170
    },
    {
      name: '王五',
      age: 28,
      height: 180
    }
  ]
//   list.forEach((item,index)=>{
//     console.log(Object.values(item))
//   })

// for(let i in list){
//   console.log(Object.values(list[i]))
// }


// function targetList(a,b){
//   let arr = []
//    a.forEach(item=>{
//      console.log(item);
//       b.forEach(i=>{
//         arr.push(item[i])
//       })
//    })
//    console.log(arr);
//    targetList=[]
//    for (let i = 0 ; i < arr.length ; i=i+b.length){
//      targetList.push(arr.slice(i,i+b.length))
//    }
//    console.log(targetList);
// }
// targetList(list,['name','age','height'])


function targetList(a,b){
  return a.map(item=>{
    // console.log(item);
    const arr=[]
    // console.log(Object.keys(item));
    Object.keys(item).forEach(key=>{
      // console.log(key);
      // console.log(item[key]);
      // console.log(!b);
      if(!b){
        arr.push(item[key])
      }else{
        if(b.includes(key)){
          arr.push(item[key])
        }
      }
    })
    // return arr
    console.log(arr);
  })
}
targetList(list,['name','age','height'])





  // const targetList = [
  //   ['张三', 18, 180],
  //   ['李四', 20, 170],
  //   ['王五', 28, 180],
  // ]
  /* 
    编写一个函数transList 输入为list,输出为targetList
  /*
    优化这个函数可以自由的决定当前想要哪些字段
    transList(list,['name']) 返回值为: 
    const targetList = [
      ['张三'],
      ['李四'],
      ['王五'],
    ]
    transList(list,['name','age']) 返回值为: 
    const targetList = [
      ['张三', 18],
      ['李四', 20],
      ['王五', 28],
    ]
  */
</script>